StoredProc a navrat hodnot
Otázka od: Jiri Fait
2. 8. 2004 12:47
Nemuzu prijit na zpusob jak komponentou TIBStoredProc dostat vystupni data z
ulozene procedury.
... Kus kodu:
if skldata.spUpdPopisy.Prepared then
skldata.spUpdPopisy.Unprepare;
skldata.spUpdPopisy.Prepare;
skldata.spUpdPopisy.ParamByName('vstup_kod').AsString :=
skldata.dtProvedeniKOD.AsString;
skldata.spUpdPopisy.ExecProc;
Procedure probehne ale vystupni parametry (i pole) zustavaji prazdne.
Co je blbe?
Jirka
Delphi 7
Firebird 1.5
IBO (zkousel jsem to i s IBExpres)
Odpovedá: Milan Tomes
2. 8. 2004 14:32
A proc nevybiras data ze Stored procedury pomoci normalniho TIBDataSet +
Select xxx from SP_xxx ???
Je to bez jedineho problemu...
S pozdravem
Milan Tomes
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Jiri Fait
> Sent: Monday, August 02, 2004 1:21 PM
>
> Nemuzu prijit na zpusob jak komponentou TIBStoredProc dostat
> vystupni data z
> ulozene procedury.
Odpovedá: Jaroslav Uher
2. 8. 2004 15:27
Ahoj,
to reseni existuje, na konci puvodni zpravy je cela moje procedura
Jarek Uher
Milan Tomes wrote:
> A proc nevybiras data ze Stored procedury pomoci normalniho TIBDataSet +
> Select xxx from SP_xxx ???
> Je to bez jedineho problemu...
>
> S pozdravem
>
> Milan Tomes
>
>
>> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Jiri Fait
>> Sent: Monday, August 02, 2004 1:21 PM
>>
>> Nemuzu prijit na zpusob jak komponentou TIBStoredProc dostat
>> vystupni data z
>> ulozene procedury.
procedure TFormMain.SP_PRIPADY_TO_ARCHIV;
var Pocet : integer;
begin
(*
CREATE PROCEDURE PRIPADY_TO_ARCHIV (
U_NP SMALLINT,
U_DT_VZNIKU DATE,
U_DEL SMALLINT,
U_NEWDEL SMALLINT,
U_LAST_USER CHAR(4))
RETURNS (POCET INTEGER)
*)
Pocet := 0;
with DataModul, FormPripadyToArchiv do
try
IBTransaction1.Active := false;
try
Screen.Cursor := crHourGlass;
IBStoredProc.Transaction := IBTransaction1;
IBTransaction1.StartTransaction;
IBStoredProc.StoredProcName := 'PRIPADY_TO_ARCHIV';
IBStoredProc.Params.Clear;
(* poradi musi odpovidat volane Stored Procedure ! *)
with IBStoredProc.Params.CreateParam(ftSmallInt, 'NP',ptInput) do
AsSmallInt := RadioGroupNP.ItemIndex +1;
with IBStoredProc.Params.CreateParam(ftDate, 'DT_VZNIKU',ptInput) do
AsDate := DTPickerVyradit.Date;
with IBStoredProc.Params.CreateParam(ftSmallInt, 'DEL',ptInput) do
AsSmallInt := ciActiveKod;
with IBStoredProc.Params.CreateParam(ftSmallInt,
'U_NEWDEL',ptInput) do
AsSmallInt := ciArchiveKod;
with IBStoredProc.Params.CreateParam(ftString,
'LAST_USER',ptInput) do
AsString := DataModul.Get_MaklerKodFromName(gsMakler);
IBStoredProc.Params.CreateParam(ftInteger,
'POCET',ptOutput).AsInteger :=0;
IBStoredProc.Prepare;
IBStoredProc.ExecProc;
IBTransaction1.CommitRetaining;
// vrati pocet presunu do archivu
Pocet := IBStoredProc.Params.ParamValues['POCET'];
Screen.Cursor:=crDefault;
MessageDlg(Format(rsM_NumberPripaduMoved, [Pocet]), mtInformation,
[mbYes],0)
except
on E: Exception do
begin
IBTransaction1.RollbackRetaining;
MessageDlg(rsE_Update+#13+E.Message, mtWarning, [mbOk], 0);
end;
end;
finally
IBTransaction1.Active := false;
end;
end;
Odpovedá: Libor Junek, Medisoft International
2. 8. 2004 15:27
Mozna blbost ale nezapomel jsi nahodou SUSPENDovat hodnoty z SP?
Libor
----- Original Message -----
From: "Jiri Fait" <develop@lmss.cz>
Sent: Monday, August 02, 2004 1:21 PM
> Nemuzu prijit na zpusob jak komponentou TIBStoredProc dostat vystupni data
z
> ulozene procedury.
Odpovedá: Jiri Fait
2. 8. 2004 15:56
> Mozna blbost ale nezapomel jsi nahodou SUSPENDovat hodnoty z SP? Libor
Nezapomnel......v IBExpertu ji normalne provedu a vrati data. Ten SELECT
from sproc funguje.
Ynamena to ye primarne jsou komponentz TXXStoredProc urceny pouze pro
vykonani procedur ktere nic nevraci?
Je to tak?
Dik Jirka